package com.we.tickets.contracts.ticketing;

import io.reactivex.Flowable;
import io.reactivex.functions.Function;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Callable;
import org.web3j.abi.EventEncoder;
import org.web3j.abi.TypeReference;
import org.web3j.abi.datatypes.Address;
import org.web3j.abi.datatypes.Bool;
import org.web3j.abi.datatypes.DynamicArray;
import org.web3j.abi.datatypes.Event;
import org.web3j.abi.datatypes.Type;
import org.web3j.abi.datatypes.Utf8String;
import org.web3j.abi.datatypes.generated.Uint128;
import org.web3j.abi.datatypes.generated.Uint256;
import org.web3j.crypto.Credentials;
import org.web3j.protocol.Web3j;
import org.web3j.protocol.core.DefaultBlockParameter;
import org.web3j.protocol.core.RemoteCall;
import org.web3j.protocol.core.RemoteFunctionCall;
import org.web3j.protocol.core.methods.request.EthFilter;
import org.web3j.protocol.core.methods.response.BaseEventResponse;
import org.web3j.protocol.core.methods.response.Log;
import org.web3j.protocol.core.methods.response.TransactionReceipt;
import org.web3j.tuples.generated.Tuple10;
import org.web3j.tuples.generated.Tuple4;
import org.web3j.tuples.generated.Tuple5;
import org.web3j.tx.Contract;
import org.web3j.tx.TransactionManager;
import org.web3j.tx.gas.ContractGasProvider;

/**
 * <p>Auto generated code.
 * <p><strong>Do not modify!</strong>
 * <p>Please use the <a href="https://docs.web3j.io/command_line.html">web3j command line tools</a>,
 * or the org.web3j.codegen.SolidityFunctionWrapperGenerator in the
 * <a href="https://github.com/web3j/web3j/tree/master/codegen">codegen module</a> to update.
 *
 * <p>Generated with web3j version 1.4.2.
 */
@SuppressWarnings("rawtypes")
public class TicketingManagement extends Contract {
    public static final String BINARY = "60806040523480156200001157600080fd5b50604051806040016040528060048152602001634c69666560e01b815250604051806040016040528060048152602001634c49464560e01b815250816000908051906020019062000064929190620000f3565b5080516200007a906001906020840190620000f3565b50505062000097620000916200009d60201b60201c565b620000a1565b620001d6565b3390565b601080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620001019062000199565b90600052602060002090601f01602090048101928262000125576000855562000170565b82601f106200014057805160ff191683800117855562000170565b8280016001018555821562000170579182015b828111156200017057825182559160200191906001019062000153565b506200017e92915062000182565b5090565b5b808211156200017e576000815560010162000183565b600181811c90821680620001ae57607f821691505b60208210811415620001d057634e487b7160e01b600052602260045260246000fd5b50919050565b613cdc80620001e66000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80637aa9531511610130578063b88d4fde116100b8578063e83834001161007c578063e8383400146105cb578063e95a644f146105de578063e985e9c5146105f1578063e9c84b641461062d578063f2fde38b1461065857600080fd5b8063b88d4fde1461056c578063c6d537381461057f578063c87b56dd14610592578063ce7efa66146105a5578063d78bfaa2146105b857600080fd5b806395d89b41116100ff57806395d89b411461050b578063a173a37514610513578063a22cb46514610526578063a8b22d7514610539578063ad04a3aa1461055957600080fd5b80637aa95315146103d857806389b89262146103eb5780638da5cb5b1461045057806391802d761461046157600080fd5b806323b872dd116101be5780634f6ccce7116101825780634f6ccce7146103775780636352211e1461038a57806370a082311461039d578063710693be146103b0578063715018a6146103d057600080fd5b806323b872dd1461031857806325ff004b1461032b5780632f745c591461033e57806342842e0e14610351578063480ed9571461036457600080fd5b8063081812fc11610205578063081812fc1461029c578063095ea7b3146102c757806318160ddd146102da5780631b335c98146102ec5780631e73fdec1461030557600080fd5b806301ffc9a71461023757806306fdde031461025f57806307f80ac114610274578063080f4f5a14610289575b600080fd5b61024a610245366004613605565b61066b565b60405190151581526020015b60405180910390f35b610267610696565b6040516102569190613973565b61028761028236600461363f565b610728565b005b61028761029736600461372d565b61078b565b6102af6102aa36600461363f565b610aac565b6040516001600160a01b039091168152602001610256565b6102876102d53660046135d9565b610ad3565b6008545b604051908152602001610256565b6102f4610be9565b604051610256959493929190613906565b61028761031336600461363f565b610f14565b610287610326366004613483565b611044565b6012546102af906001600160a01b031681565b6102de61034c3660046135d9565b611075565b61028761035f366004613483565b61110b565b6102de61037236600461363f565b611126565b6102de61038536600461363f565b611168565b6102af61039836600461363f565b6111fb565b6102de6103ab366004613410565b61125b565b6103c36103be36600461363f565b6112e1565b60405161025691906138b9565b61028761132b565b6102876103e636600461363f565b61133f565b6104286103f936600461363f565b600c602052600090815260409020805460019091015460ff808216916101008104821691620100009091041684565b6040805194855292151560208501529015159183019190915215156060820152608001610256565b6010546001600160a01b03166102af565b6104bb61046f36600461363f565b600a60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600890980154969760ff8088169861010090980416968a565b604080519a8b5298151560208b0152961515978901979097526060880194909452608087019290925260a086015260c085015260e084015261010083019190915261012082015261014001610256565b6102676115c6565b610287610521366004613410565b6115d5565b6102876105343660046135a4565b6115ff565b6102de61054736600461363f565b600b6020526000908152604090205481565b6102876105673660046136fc565b61160e565b61028761057a3660046134c4565b6116bf565b61028761058d36600461363f565b6116f1565b6102676105a036600461363f565b6118ba565b6102876105b3366004613658565b61192d565b6102876105c636600461367d565b611b4e565b6102de6105d936600461363f565b611dc5565b6102876105ec36600461363f565b611e1d565b61024a6105ff36600461344a565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102de61063b3660046135d9565b600f60209081526000928352604080842090915290825290205481565b610287610666366004613410565b611fb4565b60006001600160e01b0319821663780e9d6360e01b148061069057506106908261202d565b92915050565b6060600080546106a590613bd3565b80601f01602080910402602001604051908101604052809291908181526020018280546106d190613bd3565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050905090565b8033610733826111fb565b6001600160a01b0316146107625760405162461bcd60e51b815260040161075990613b51565b60405180910390fd5b61076d600083610ad3565b506000908152600c60205260409020600101805462ff000019169055565b60008b8152600a6020526040902060070154156107ea5760405162461bcd60e51b815260206004820152601860248201527f7469636b6574496420616c7265616479206578697374732e00000000000000006044820152606401610759565b600082116108305760405162461bcd60e51b815260206004820152601360248201527229bab69031b0b73737ba103132903d32b9379760691b6044820152606401610759565b60125460405163320d1b0d60e11b8152600481018c90526001600160a01b03909116903390829063641a361a9060240160206040518083038186803b15801561087857600080fd5b505afa15801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b0919061342d565b6001600160a01b0316146109155760405162461bcd60e51b815260206004820152602660248201527f596f7520617265206e6f7420746865206f7267616e697a6572206f662074686560448201526508195d995b9d60d21b6064820152608401610759565b878511156109785760405162461bcd60e51b815260206004820152602a60248201527f76616c69644265666f7265206d757374206265206c61746572207468616e2073604482015269616c65456e6454696d6560b01b6064820152608401610759565b878611156109df5760405162461bcd60e51b815260206004820152602e60248201527f76616c69644265666f7265206d757374206265206c61746572207468616e207460448201526d72616e73666572456e6454696d6560901b6064820152608401610759565b5060408051610140810182529a8b529815156020808c019182529815158b8b0190815260608c0198895260808c0197885260a08c0196875260c08c0195865260e08c01948552610100808d018581526101208e0194855260009e8f52600a8c528c8f209d518e55925160018e018054935161ffff1990941691151561ff00191691909117921515909102919091179055965160028b0155945160038a015592516004890155905160058801555160068701559151600786015551600890940193909355600b905290912055565b6000610ab78261207d565b506000908152600460205260409020546001600160a01b031690565b6000610ade826111fb565b9050806001600160a01b0316836001600160a01b03161415610b4c5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610759565b336001600160a01b0382161480610b685750610b6881336105ff565b610bda5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610759565b610be483836120dc565b505050565b60608060608060606000610bfc3361125b565b90508067ffffffffffffffff811115610c1757610c17613c65565b604051908082528060200260200182016040528015610c40578160200160208202803683370190505b5095508067ffffffffffffffff811115610c5c57610c5c613c65565b604051908082528060200260200182016040528015610c85578160200160208202803683370190505b5094508067ffffffffffffffff811115610ca157610ca1613c65565b604051908082528060200260200182016040528015610cca578160200160208202803683370190505b5093508067ffffffffffffffff811115610ce657610ce6613c65565b604051908082528060200260200182016040528015610d0f578160200160208202803683370190505b5092508067ffffffffffffffff811115610d2b57610d2b613c65565b604051908082528060200260200182016040528015610d54578160200160208202803683370190505b50915060005b81811015610f0b57610d6c3382611075565b878281518110610d7e57610d7e613c4f565b602002602001018181525050600c6000888381518110610da057610da0613c4f565b6020026020010151815260200190815260200160002060000154868281518110610dcc57610dcc613c4f565b602002602001018181525050600c6000888381518110610dee57610dee613c4f565b6020026020010151815260200190815260200160002060010160009054906101000a900460ff16858281518110610e2757610e27613c4f565b602002602001019015159081151581525050600c6000888381518110610e4f57610e4f613c4f565b6020026020010151815260200190815260200160002060010160019054906101000a900460ff16848281518110610e8857610e88613c4f565b602002602001019015159081151581525050600c6000888381518110610eb057610eb0613c4f565b6020026020010151815260200190815260200160002060010160029054906101000a900460ff16838281518110610ee957610ee9613c4f565b9115156020928302919091019091015280610f0381613c08565b915050610d5a565b50509091929394565b6000818152600c602052604090206001015460ff1615610f6e5760405162461bcd60e51b81526020600482015260156024820152742a34b1b5b2ba103430b9903132b2b7103ab9b2b21760591b6044820152606401610759565b6000818152600c60205260408120546000818152600a60205260409020600401549091504210610fd15760405162461bcd60e51b815260206004820152600e60248201526d23b930b73a34b7339032b732399760911b6044820152606401610759565b33610fdb83610aac565b6001600160a01b0316146110315760405162461bcd60e51b815260206004820152601760248201527f4e6f7420617070726f76656420746f206163636570742e0000000000000000006044820152606401610759565b61076d61103d836111fb565b338461110b565b61104e338261214a565b61106a5760405162461bcd60e51b815260040161075990613986565b610be48383836121c9565b60006110808361125b565b82106110e25760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610759565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b610be4838383604051806020016040528060008152506116bf565b6000818152600a602052604081206007015482906111565760405162461bcd60e51b815260040161075990613ae3565b61115f8361233a565b91505b50919050565b600061117360085490565b82106111d65760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610759565b600882815481106111e9576111e9613c4f565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b0316806106905760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610759565b60006001600160a01b0382166112c55760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610759565b506001600160a01b031660009081526003602052604090205490565b606081336112ee826111fb565b6001600160a01b0316146113145760405162461bcd60e51b815260040161075990613b51565b6000838152600e6020526040902061115f9061239b565b6113336123af565b61133d6000612409565b565b803361134a826111fb565b6001600160a01b0316146113705760405162461bcd60e51b815260040161075990613b51565b6000828152600c60205260409020600101548290610100900460ff16156113a95760405162461bcd60e51b815260040161075990613aac565b6000818152600c602052604090206001015462010000900460ff16156113e15760405162461bcd60e51b815260040161075990613b1a565b6000818152600c602052604090206001015460ff16156114135760405162461bcd60e51b815260040161075990613a6a565b6000838152600c60205260408120546000818152600a6020526040902060010154909150610100900460ff1661148b5760405162461bcd60e51b815260206004820181905260248201527f54686973207469636b6574206973206e6f74207472616e7366657261626c652e6044820152606401610759565b6000818152600a602052604090206005015442106114eb5760405162461bcd60e51b815260206004820152601e60248201527f54686973207469636b6574206973206e6f7420726573656c6c61626c652e00006044820152606401610759565b6000818152600a6020526040902060040154421061154b5760405162461bcd60e51b815260206004820152601e60248201527f54686973207469636b6574206973206e6f7420726573656c6c61626c652e00006044820152606401610759565b6000848152600c60209081526040808320600101805461ff001916610100179055838352600d9091528120611580908661245b565b6040516001600160801b03821681529091507fab41d87395f1716b0b242419db7a1b0cdc10bbc3db5af7c743398fa8b0c605539060200160405180910390a15050505050565b6060600180546106a590613bd3565b6115dd6123af565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b61160a3383836124a2565b5050565b6000828152600a6020526040902060070154829061163e5760405162461bcd60e51b815260040161075990613ae3565b6000838152600d602052604081206116569084612571565b905033611662826111fb565b6001600160a01b0316146116885760405162461bcd60e51b815260040161075990613b51565b6000818152600c60209081526040808320600101805461ff0019169055868352600d90915290206116b990846125bc565b50505050565b6116c9338361214a565b6116e55760405162461bcd60e51b815260040161075990613986565b6116b9848484846125f4565b80336116fc826111fb565b6001600160a01b0316146117225760405162461bcd60e51b815260040161075990613b51565b6000828152600c60205260409020600101548290610100900460ff161561175b5760405162461bcd60e51b815260040161075990613aac565b6000818152600c602052604090206001015462010000900460ff16156117935760405162461bcd60e51b815260040161075990613b1a565b6000818152600c602052604090206001015460ff16156117c55760405162461bcd60e51b815260040161075990613a6a565b6000838152600c60205260408120546000818152600a602052604090206001015490915060ff166118385760405162461bcd60e51b815260206004820152601e60248201527f54686973207469636b6574206973206e6f742072657475726e61626c652e00006044820152606401610759565b6000818152600a602052604090206003015442106118875760405162461bcd60e51b815260206004820152600c60248201526b2932ba3ab9371032b732399760a11b6044820152606401610759565b61189084612627565b6000818152600b602052604081208054600192906118af908490613b78565b909155505050505050565b60606118c58261207d565b60006118dc60408051602081019091526000815290565b905060008151116118fc576040518060200160405280600081525061115f565b80611906846126ca565b60405160200161191792919061384d565b6040516020818303038152906040529392505050565b8133611938826111fb565b6001600160a01b03161461195e5760405162461bcd60e51b815260040161075990613b51565b6000838152600c60205260409020600101548390610100900460ff16156119975760405162461bcd60e51b815260040161075990613aac565b6000818152600c602052604090206001015462010000900460ff16156119cf5760405162461bcd60e51b815260040161075990613b1a565b6000818152600c602052604090206001015460ff1615611a015760405162461bcd60e51b815260040161075990613a6a565b6000848152600c60205260408120546000818152600a60205260409020600401549091504210611a645760405162461bcd60e51b815260206004820152600e60248201526d23b930b73a34b7339032b732399760911b6044820152606401610759565b6001600160a01b038416611aba5760405162461bcd60e51b815260206004820152601e60248201527f4772616e7465652063616e6e6f74206265207a65726f206164647265737300006044820152606401610759565b6000858152600e60205260409020611ad29085612767565b611b1e5760405162461bcd60e51b815260206004820152601b60248201527f556e617574686f72697a656420746f206265206772616e7465642e00000000006044820152606401610759565b611b288486610ad3565b505050600091825250600c60205260409020600101805462ff0000191662010000179055565b6000838152600a60205260409020600701548390611b7e5760405162461bcd60e51b815260040161075990613ae3565b6000848152600a60205260409020600501544210611bcb5760405162461bcd60e51b815260206004820152600a60248201526929b0b6329032b732399760b11b6044820152606401610759565b6000848152600a6020908152604080832060080154338452600f83528184208885529092529091205410611c4d5760405162461bcd60e51b815260206004820152602360248201527f5468697320616464726573732063616e6e6f74206d696e74206d6f7265204c4960448201526223229760e91b6064820152608401610759565b6000611c588561233a565b11611c915760405162461bcd60e51b815260206004820152600960248201526829b7b6321037baba1760b91b6044820152606401610759565b6000848152600a602052604090206004015442108015611cc557506000848152600d60205260409020611cc390612789565b155b15611d42576000848152600d60205260408120611ce19061279e565b90506000611cee826111fb565b9050611cf982612627565b604080516001600160a01b0383168152602081018490527f3bc6ba4d5fbb9a44d2eaacadf4ede2c7fca0b386da57d0965308597a4a879165910160405180910390a15050611d67565b6000848152600b60205260408120805460019290611d61908490613b90565b90915550505b6000611d71612851565b9050611d7d3382612868565b611d8e818660008060008989612882565b336000908152600f602090815260408083208884529091528120805460019290611db9908490613b78565b90915550505050505050565b6000818152600a60205260408120600701548290611df55760405162461bcd60e51b815260040161075990613ae3565b6000838152600b6020908152604080832054600a9092529091206007015461115f9190613b90565b6000818152600c60205260409020600101548190610100900460ff1615611e565760405162461bcd60e51b815260040161075990613aac565b6000818152600c602052604090206001015462010000900460ff1615611e8e5760405162461bcd60e51b815260040161075990613b1a565b6000818152600c602052604090206001015460ff1615611ec05760405162461bcd60e51b815260040161075990613a6a565b6000828152600c602052604090205433611ed98261297d565b6001600160a01b031614611eff5760405162461bcd60e51b815260040161075990613b51565b60008111611f455760405162461bcd60e51b81526020600482015260136024820152722624a322903237b2b9b713ba1032bc34b9ba1760691b6044820152606401610759565b6000818152600a60205260409020600201544210611f925760405162461bcd60e51b815260206004820152600a6024820152692737ba103b30b634b21760b11b6044820152606401610759565b50506000908152600c602052604090206001908101805460ff19169091179055565b611fbc6123af565b6001600160a01b0381166120215760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610759565b61202a81612409565b50565b60006001600160e01b031982166380ac58cd60e01b148061205e57506001600160e01b03198216635b5e139f60e01b145b8061069057506301ffc9a760e01b6001600160e01b0319831614610690565b6000818152600260205260409020546001600160a01b031661202a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610759565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612111826111fb565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080612156836111fb565b9050806001600160a01b0316846001600160a01b0316148061219d57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806121c15750836001600160a01b03166121b684610aac565b6001600160a01b0316145b949350505050565b826001600160a01b03166121dc826111fb565b6001600160a01b0316146122025760405162461bcd60e51b815260040161075990613a25565b6001600160a01b0382166122645760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610759565b6122718383836001612a0a565b826001600160a01b0316612284826111fb565b6001600160a01b0316146122aa5760405162461bcd60e51b815260040161075990613a25565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000818152600a6020526040812060040154421015612383576000828152600d6020526040902061236a90612b4a565b6000838152600b60205260409020546106909190613b78565b506000908152600b602052604090205490565b919050565b606060006123a883612b58565b9392505050565b6010546001600160a01b0316331461133d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610759565b601080546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8154600090600160801b90046001600160801b031661247e600185018285612bb4565b5083546001600160801b03600183018116600160801b029116178455905092915050565b816001600160a01b0316836001600160a01b031614156125045760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610759565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600061258983600101836001600160801b0316612bc1565b6125a657604051633ae0c1f360e01b815260040160405180910390fd5b6123a883600101836001600160801b0316612bcd565b60006125d483600101836001600160801b0316612bd9565b905080610be457604051633ae0c1f360e01b815260040160405180910390fd5b6125ff8484846121c9565b61260b84848484612be5565b6116b95760405162461bcd60e51b8152600401610759906139d3565b6000612632826111fb565b9050612642816000846001612a0a565b61264b826111fb565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606060006126d783612cf2565b600101905060008167ffffffffffffffff8111156126f7576126f7613c65565b6040519080825280601f01601f191660200182016040528015612721576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461275a5761275f565b61272b565b509392505050565b6001600160a01b038116600090815260018301602052604081205415156123a8565b600061279782600101612dca565b1592915050565b6000806127aa83612789565b156127c857604051631ed9509560e11b815260040160405180910390fd5b82546001600160801b03165b6127ea84600101826001600160801b0316612bc1565b6127f6576001016127d4565b61280c84600101826001600160801b0316612bcd565b915061282484600101826001600160801b0316612bd9565b5083546fffffffffffffffffffffffffffffffff19166001919091016001600160801b0316179092555090565b6000612861601180546001019055565b5060115490565b61160a828260405180602001604052806000815250612dd5565b6040805160808101825287815286151560208083019182528715158385019081528715156060850190815260008d8152600c845286812095518655935160019586018054935192511515620100000262ff00001993151561010090810261ff00199415159490941661ffff199096169590951792909217929092161790558a8352600a90915292902001540460ff16156129745760005b81811015612972576000888152600e6020526040902061295f9084848481811061294557612945613c4f565b905060200201602081019061295a9190613410565b612e08565b508061296a81613c08565b915050612919565b505b50505050505050565b6000818152600a602052604080822054601254915163320d1b0d60e11b81526004810182905290916001600160a01b031690819063641a361a9060240160206040518083038186803b1580156129d257600080fd5b505afa1580156129e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c1919061342d565b612a1684848484612e1d565b6001811115612a855760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610759565b816001600160a01b038516612ae157612adc81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b612b04565b836001600160a01b0316856001600160a01b031614612b0457612b048582612e9a565b6001600160a01b038416612b2057612b1b81612f37565b612b43565b846001600160a01b0316846001600160a01b031614612b4357612b438482612fe6565b5050505050565b600061069082600101612dca565b606081600001805480602002602001604051908101604052809291908181526020018280548015612ba857602002820191906000526020600020905b815481526020019060010190808311612b94575b50505050509050919050565b60006121c184848461302a565b60006123a88383613047565b60006123a88383613053565b60006123a883836130c3565b60006001600160a01b0384163b15612ce757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612c2990339089908890889060040161387c565b602060405180830381600087803b158015612c4357600080fd5b505af1925050508015612c73575060408051601f3d908101601f19168201909252612c7091810190613622565b60015b612ccd573d808015612ca1576040519150601f19603f3d011682016040523d82523d6000602084013e612ca6565b606091505b508051612cc55760405162461bcd60e51b8152600401610759906139d3565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506121c1565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612d315772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612d5d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612d7b57662386f26fc10000830492506010015b6305f5e1008310612d93576305f5e100830492506008015b6127108310612da757612710830492506004015b60648310612db9576064830492506002015b600a83106106905760010192915050565b6000610690826130e0565b612ddf83836130eb565b612dec6000848484612be5565b610be45760405162461bcd60e51b8152600401610759906139d3565b60006123a8836001600160a01b038416613284565b60018111156116b9576001600160a01b03841615612e63576001600160a01b03841660009081526003602052604081208054839290612e5d908490613b90565b90915550505b6001600160a01b038316156116b9576001600160a01b038316600090815260036020526040812080548392906118af908490613b78565b60006001612ea78461125b565b612eb19190613b90565b600083815260076020526040902054909150808214612f04576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090612f4990600190613b90565b60008381526009602052604081205460088054939450909284908110612f7157612f71613c4f565b906000526020600020015490508060088381548110612f9257612f92613c4f565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480612fca57612fca613c39565b6001900381819060005260206000200160009055905550505050565b6000612ff18361125b565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b600082815260028401602052604081208290556121c184846132d3565b60006123a883836132df565b60008181526002830160205260408120548015158061307757506130778484613047565b6123a85760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610759565b600081815260028301602052604081208190556123a883836132f7565b600061069082613303565b6001600160a01b0382166131415760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610759565b6000818152600260205260409020546001600160a01b0316156131a65760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610759565b6131b4600083836001612a0a565b6000818152600260205260409020546001600160a01b0316156132195760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610759565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60008181526001830160205260408120546132cb57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610690565b506000610690565b60006123a88383613284565b600081815260018301602052604081205415156123a8565b60006123a8838361330d565b6000610690825490565b600081815260018301602052604081205480156133f6576000613331600183613b90565b855490915060009061334590600190613b90565b90508181146133aa57600086600001828154811061336557613365613c4f565b906000526020600020015490508087600001848154811061338857613388613c4f565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806133bb576133bb613c39565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610690565b6000915050610690565b8035801515811461239657600080fd5b60006020828403121561342257600080fd5b81356123a881613c7b565b60006020828403121561343f57600080fd5b81516123a881613c7b565b6000806040838503121561345d57600080fd5b823561346881613c7b565b9150602083013561347881613c7b565b809150509250929050565b60008060006060848603121561349857600080fd5b83356134a381613c7b565b925060208401356134b381613c7b565b929592945050506040919091013590565b600080600080608085870312156134da57600080fd5b84356134e581613c7b565b935060208501356134f581613c7b565b925060408501359150606085013567ffffffffffffffff8082111561351957600080fd5b818701915087601f83011261352d57600080fd5b81358181111561353f5761353f613c65565b604051601f8201601f19908116603f0116810190838211818310171561356757613567613c65565b816040528281528a602084870101111561358057600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600080604083850312156135b757600080fd5b82356135c281613c7b565b91506135d060208401613400565b90509250929050565b600080604083850312156135ec57600080fd5b82356135f781613c7b565b946020939093013593505050565b60006020828403121561361757600080fd5b81356123a881613c90565b60006020828403121561363457600080fd5b81516123a881613c90565b60006020828403121561365157600080fd5b5035919050565b6000806040838503121561366b57600080fd5b82359150602083013561347881613c7b565b60008060006040848603121561369257600080fd5b83359250602084013567ffffffffffffffff808211156136b157600080fd5b818601915086601f8301126136c557600080fd5b8135818111156136d457600080fd5b8760208260051b85010111156136e957600080fd5b6020830194508093505050509250925092565b6000806040838503121561370f57600080fd5b8235915060208301356001600160801b038116811461347857600080fd5b60008060008060008060008060008060006101608c8e03121561374f57600080fd5b8b359a5060208c0135995061376660408d01613400565b985061377460608d01613400565b9a9d999c50979a60808101359960a0820135995060c0820135985060e0820135975061010082013596506101208201359550610140909101359350915050565b600081518084526020808501945080840160005b838110156137e65781511515875295820195908201906001016137c8565b509495945050505050565b600081518084526020808501945080840160005b838110156137e657815187529582019590820190600101613805565b60008151808452613839816020860160208601613ba7565b601f01601f19169290920160200192915050565b6000835161385f818460208801613ba7565b835190830190613873818360208801613ba7565b01949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906138af90830184613821565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156138fa5783516001600160a01b0316835292840192918401916001016138d5565b50909695505050505050565b60a08152600061391960a08301886137f1565b828103602084015261392b81886137f1565b9050828103604084015261393f81876137b4565b9050828103606084015261395381866137b4565b9050828103608084015261396781856137b4565b98975050505050505050565b6020815260006123a86020830184613821565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526022908201527f596f75206861766520616c726561647920757365642074686973207469636b656040820152613a1760f11b606082015260800190565b6020808252601b908201527f596f752073686f756c642063616e63656c20726573656c6c696e670000000000604082015260600190565b60208082526017908201527f7469636b6574496420646f65736e27742065786973742e000000000000000000604082015260600190565b6020808252601a908201527f596f752073686f756c642063616e63656c206772616e74696e67000000000000604082015260600190565b6020808252600d908201526c2ab730baba3437b934bd32b21760991b604082015260600190565b60008219821115613b8b57613b8b613c23565b500190565b600082821015613ba257613ba2613c23565b500390565b60005b83811015613bc2578181015183820152602001613baa565b838111156116b95750506000910152565b600181811c90821680613be757607f821691505b6020821081141561116257634e487b7160e01b600052602260045260246000fd5b6000600019821415613c1c57613c1c613c23565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461202a57600080fd5b6001600160e01b03198116811461202a57600080fdfea264697066735822122002f9ed3a5e4c9847553dbe762decfd5078ba2673204d1868dd9cf0cba821a4da64736f6c63430008070033";

    public static final String FUNC_BALANCEMAP = "BalanceMap";

    public static final String FUNC_EMADD = "EMAdd";

    public static final String FUNC_LIFEINFOMAP = "LIFEInfoMap";

    public static final String FUNC_REMAININGTICKETSNUMMAP = "RemainingTicketsNumMap";

    public static final String FUNC_TICKETLIST = "TicketList";

    public static final String FUNC_ACCEPTLIFE = "acceptLIFE";

    public static final String FUNC_APPROVE = "approve";

    public static final String FUNC_BALANCEOF = "balanceOf";

    public static final String FUNC_CANCELGRANTING = "cancelGranting";

    public static final String FUNC_CANCELRESELLING = "cancelReselling";

    public static final String FUNC_CHECKIN = "checkIn";

    public static final String FUNC_CREATETICKET = "createTicket";

    public static final String FUNC_GETAPPROVED = "getApproved";

    public static final String FUNC_GETBUYABLETICKETSNUM = "getBuyableTicketsNum";

    public static final String FUNC_GETGRANTEELIST = "getGranteeList";

    public static final String FUNC_GETLIFESOFOWNER = "getLIFEsOfOwner";

    public static final String FUNC_GETSOLDTICKETSNUM = "getSoldTicketsNum";

    public static final String FUNC_GRANTLIFE = "grantLIFE";

    public static final String FUNC_ISAPPROVEDFORALL = "isApprovedForAll";

    public static final String FUNC_MINTLIFE = "mintLIFE";

    public static final String FUNC_NAME = "name";

    public static final String FUNC_OWNER = "owner";

    public static final String FUNC_OWNEROF = "ownerOf";

    public static final String FUNC_RENOUNCEOWNERSHIP = "renounceOwnership";

    public static final String FUNC_RESELLLIFE = "resellLIFE";

    public static final String FUNC_RETURNLIFE = "returnLIFE";

    public static final String FUNC_safeTransferFrom = "safeTransferFrom";

    public static final String FUNC_SETAPPROVALFORALL = "setApprovalForAll";

    public static final String FUNC_SETEMADD = "setEMAdd";

    public static final String FUNC_SUPPORTSINTERFACE = "supportsInterface";

    public static final String FUNC_SYMBOL = "symbol";

    public static final String FUNC_TOKENBYINDEX = "tokenByIndex";

    public static final String FUNC_TOKENOFOWNERBYINDEX = "tokenOfOwnerByIndex";

    public static final String FUNC_TOKENURI = "tokenURI";

    public static final String FUNC_TOTALSUPPLY = "totalSupply";

    public static final String FUNC_TRANSFERFROM = "transferFrom";

    public static final String FUNC_TRANSFEROWNERSHIP = "transferOwnership";

    public static final Event APPROVAL_EVENT = new Event("Approval",
            Arrays.<TypeReference<?>>asList(new TypeReference<Address>(true) {}, new TypeReference<Address>(true) {}, new TypeReference<Uint256>(true) {}));
    ;

    public static final Event APPROVALFORALL_EVENT = new Event("ApprovalForAll",
            Arrays.<TypeReference<?>>asList(new TypeReference<Address>(true) {}, new TypeReference<Address>(true) {}, new TypeReference<Bool>() {}));
    ;

    public static final Event GETQUEUENUM_EVENT = new Event("GetQueueNum",
            Arrays.<TypeReference<?>>asList(new TypeReference<Uint128>() {}));
    ;

    public static final Event OWNERSHIPTRANSFERRED_EVENT = new Event("OwnershipTransferred",
            Arrays.<TypeReference<?>>asList(new TypeReference<Address>(true) {}, new TypeReference<Address>(true) {}));
    ;

    public static final Event RESELLSUCCESS_EVENT = new Event("ResellSuccess",
            Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}, new TypeReference<Uint256>() {}));
    ;

    public static final Event TRANSFER_EVENT = new Event("Transfer",
            Arrays.<TypeReference<?>>asList(new TypeReference<Address>(true) {}, new TypeReference<Address>(true) {}, new TypeReference<Uint256>(true) {}));
    ;

    @Deprecated
    protected TicketingManagement(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) {
        super(BINARY, contractAddress, web3j, credentials, gasPrice, gasLimit);
    }

    protected TicketingManagement(String contractAddress, Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) {
        super(BINARY, contractAddress, web3j, credentials, contractGasProvider);
    }

    @Deprecated
    protected TicketingManagement(String contractAddress, Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) {
        super(BINARY, contractAddress, web3j, transactionManager, gasPrice, gasLimit);
    }

    protected TicketingManagement(String contractAddress, Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) {
        super(BINARY, contractAddress, web3j, transactionManager, contractGasProvider);
    }

    public List<ApprovalEventResponse> getApprovalEvents(TransactionReceipt transactionReceipt) {
        List<Contract.EventValuesWithLog> valueList = extractEventParametersWithLog(APPROVAL_EVENT, transactionReceipt);
        ArrayList<ApprovalEventResponse> responses = new ArrayList<ApprovalEventResponse>(valueList.size());
        for (Contract.EventValuesWithLog eventValues : valueList) {
            ApprovalEventResponse typedResponse = new ApprovalEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.owner = (String) eventValues.getIndexedValues().get(0).getValue();
            typedResponse.approved = (String) eventValues.getIndexedValues().get(1).getValue();
            typedResponse.tokenId = (BigInteger) eventValues.getIndexedValues().get(2).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public Flowable<ApprovalEventResponse> approvalEventFlowable(EthFilter filter) {
        return web3j.ethLogFlowable(filter).map(new Function<Log, ApprovalEventResponse>() {
            @Override
            public ApprovalEventResponse apply(Log log) {
                Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(APPROVAL_EVENT, log);
                ApprovalEventResponse typedResponse = new ApprovalEventResponse();
                typedResponse.log = log;
                typedResponse.owner = (String) eventValues.getIndexedValues().get(0).getValue();
                typedResponse.approved = (String) eventValues.getIndexedValues().get(1).getValue();
                typedResponse.tokenId = (BigInteger) eventValues.getIndexedValues().get(2).getValue();
                return typedResponse;
            }
        });
    }

    public Flowable<ApprovalEventResponse> approvalEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) {
        EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress());
        filter.addSingleTopic(EventEncoder.encode(APPROVAL_EVENT));
        return approvalEventFlowable(filter);
    }

    public List<ApprovalForAllEventResponse> getApprovalForAllEvents(TransactionReceipt transactionReceipt) {
        List<Contract.EventValuesWithLog> valueList = extractEventParametersWithLog(APPROVALFORALL_EVENT, transactionReceipt);
        ArrayList<ApprovalForAllEventResponse> responses = new ArrayList<ApprovalForAllEventResponse>(valueList.size());
        for (Contract.EventValuesWithLog eventValues : valueList) {
            ApprovalForAllEventResponse typedResponse = new ApprovalForAllEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.owner = (String) eventValues.getIndexedValues().get(0).getValue();
            typedResponse.operator = (String) eventValues.getIndexedValues().get(1).getValue();
            typedResponse.approved = (Boolean) eventValues.getNonIndexedValues().get(0).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public Flowable<ApprovalForAllEventResponse> approvalForAllEventFlowable(EthFilter filter) {
        return web3j.ethLogFlowable(filter).map(new Function<Log, ApprovalForAllEventResponse>() {
            @Override
            public ApprovalForAllEventResponse apply(Log log) {
                Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(APPROVALFORALL_EVENT, log);
                ApprovalForAllEventResponse typedResponse = new ApprovalForAllEventResponse();
                typedResponse.log = log;
                typedResponse.owner = (String) eventValues.getIndexedValues().get(0).getValue();
                typedResponse.operator = (String) eventValues.getIndexedValues().get(1).getValue();
                typedResponse.approved = (Boolean) eventValues.getNonIndexedValues().get(0).getValue();
                return typedResponse;
            }
        });
    }

    public Flowable<ApprovalForAllEventResponse> approvalForAllEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) {
        EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress());
        filter.addSingleTopic(EventEncoder.encode(APPROVALFORALL_EVENT));
        return approvalForAllEventFlowable(filter);
    }

    public List<GetQueueNumEventResponse> getGetQueueNumEvents(TransactionReceipt transactionReceipt) {
        List<Contract.EventValuesWithLog> valueList = extractEventParametersWithLog(GETQUEUENUM_EVENT, transactionReceipt);
        ArrayList<GetQueueNumEventResponse> responses = new ArrayList<GetQueueNumEventResponse>(valueList.size());
        for (Contract.EventValuesWithLog eventValues : valueList) {
            GetQueueNumEventResponse typedResponse = new GetQueueNumEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.num = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public Flowable<GetQueueNumEventResponse> getQueueNumEventFlowable(EthFilter filter) {
        return web3j.ethLogFlowable(filter).map(new Function<Log, GetQueueNumEventResponse>() {
            @Override
            public GetQueueNumEventResponse apply(Log log) {
                Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(GETQUEUENUM_EVENT, log);
                GetQueueNumEventResponse typedResponse = new GetQueueNumEventResponse();
                typedResponse.log = log;
                typedResponse.num = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue();
                return typedResponse;
            }
        });
    }

    public Flowable<GetQueueNumEventResponse> getQueueNumEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) {
        EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress());
        filter.addSingleTopic(EventEncoder.encode(GETQUEUENUM_EVENT));
        return getQueueNumEventFlowable(filter);
    }

    public List<OwnershipTransferredEventResponse> getOwnershipTransferredEvents(TransactionReceipt transactionReceipt) {
        List<Contract.EventValuesWithLog> valueList = extractEventParametersWithLog(OWNERSHIPTRANSFERRED_EVENT, transactionReceipt);
        ArrayList<OwnershipTransferredEventResponse> responses = new ArrayList<OwnershipTransferredEventResponse>(valueList.size());
        for (Contract.EventValuesWithLog eventValues : valueList) {
            OwnershipTransferredEventResponse typedResponse = new OwnershipTransferredEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.previousOwner = (String) eventValues.getIndexedValues().get(0).getValue();
            typedResponse.newOwner = (String) eventValues.getIndexedValues().get(1).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public Flowable<OwnershipTransferredEventResponse> ownershipTransferredEventFlowable(EthFilter filter) {
        return web3j.ethLogFlowable(filter).map(new Function<Log, OwnershipTransferredEventResponse>() {
            @Override
            public OwnershipTransferredEventResponse apply(Log log) {
                Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(OWNERSHIPTRANSFERRED_EVENT, log);
                OwnershipTransferredEventResponse typedResponse = new OwnershipTransferredEventResponse();
                typedResponse.log = log;
                typedResponse.previousOwner = (String) eventValues.getIndexedValues().get(0).getValue();
                typedResponse.newOwner = (String) eventValues.getIndexedValues().get(1).getValue();
                return typedResponse;
            }
        });
    }

    public Flowable<OwnershipTransferredEventResponse> ownershipTransferredEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) {
        EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress());
        filter.addSingleTopic(EventEncoder.encode(OWNERSHIPTRANSFERRED_EVENT));
        return ownershipTransferredEventFlowable(filter);
    }

    public List<ResellSuccessEventResponse> getResellSuccessEvents(TransactionReceipt transactionReceipt) {
        List<Contract.EventValuesWithLog> valueList = extractEventParametersWithLog(RESELLSUCCESS_EVENT, transactionReceipt);
        ArrayList<ResellSuccessEventResponse> responses = new ArrayList<ResellSuccessEventResponse>(valueList.size());
        for (Contract.EventValuesWithLog eventValues : valueList) {
            ResellSuccessEventResponse typedResponse = new ResellSuccessEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.reseller = (String) eventValues.getNonIndexedValues().get(0).getValue();
            typedResponse.LIFEId = (BigInteger) eventValues.getNonIndexedValues().get(1).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public Flowable<ResellSuccessEventResponse> resellSuccessEventFlowable(EthFilter filter) {
        return web3j.ethLogFlowable(filter).map(new Function<Log, ResellSuccessEventResponse>() {
            @Override
            public ResellSuccessEventResponse apply(Log log) {
                Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(RESELLSUCCESS_EVENT, log);
                ResellSuccessEventResponse typedResponse = new ResellSuccessEventResponse();
                typedResponse.log = log;
                typedResponse.reseller = (String) eventValues.getNonIndexedValues().get(0).getValue();
                typedResponse.LIFEId = (BigInteger) eventValues.getNonIndexedValues().get(1).getValue();
                return typedResponse;
            }
        });
    }

    public Flowable<ResellSuccessEventResponse> resellSuccessEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) {
        EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress());
        filter.addSingleTopic(EventEncoder.encode(RESELLSUCCESS_EVENT));
        return resellSuccessEventFlowable(filter);
    }

    public List<TransferEventResponse> getTransferEvents(TransactionReceipt transactionReceipt) {
        List<Contract.EventValuesWithLog> valueList = extractEventParametersWithLog(TRANSFER_EVENT, transactionReceipt);
        ArrayList<TransferEventResponse> responses = new ArrayList<TransferEventResponse>(valueList.size());
        for (Contract.EventValuesWithLog eventValues : valueList) {
            TransferEventResponse typedResponse = new TransferEventResponse();
            typedResponse.log = eventValues.getLog();
            typedResponse.from = (String) eventValues.getIndexedValues().get(0).getValue();
            typedResponse.to = (String) eventValues.getIndexedValues().get(1).getValue();
            typedResponse.tokenId = (BigInteger) eventValues.getIndexedValues().get(2).getValue();
            responses.add(typedResponse);
        }
        return responses;
    }

    public Flowable<TransferEventResponse> transferEventFlowable(EthFilter filter) {
        return web3j.ethLogFlowable(filter).map(new Function<Log, TransferEventResponse>() {
            @Override
            public TransferEventResponse apply(Log log) {
                Contract.EventValuesWithLog eventValues = extractEventParametersWithLog(TRANSFER_EVENT, log);
                TransferEventResponse typedResponse = new TransferEventResponse();
                typedResponse.log = log;
                typedResponse.from = (String) eventValues.getIndexedValues().get(0).getValue();
                typedResponse.to = (String) eventValues.getIndexedValues().get(1).getValue();
                typedResponse.tokenId = (BigInteger) eventValues.getIndexedValues().get(2).getValue();
                return typedResponse;
            }
        });
    }

    public Flowable<TransferEventResponse> transferEventFlowable(DefaultBlockParameter startBlock, DefaultBlockParameter endBlock) {
        EthFilter filter = new EthFilter(startBlock, endBlock, getContractAddress());
        filter.addSingleTopic(EventEncoder.encode(TRANSFER_EVENT));
        return transferEventFlowable(filter);
    }

    public RemoteFunctionCall<BigInteger> BalanceMap(String param0, BigInteger param1) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_BALANCEMAP,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, param0),
                new org.web3j.abi.datatypes.generated.Uint256(param1)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
        return executeRemoteCallSingleValueReturn(function, BigInteger.class);
    }

    public RemoteFunctionCall<String> EMAdd() {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_EMADD,
                Arrays.<Type>asList(),
                Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}));
        return executeRemoteCallSingleValueReturn(function, String.class);
    }

    public RemoteFunctionCall<Tuple4<BigInteger, Boolean, Boolean, Boolean>> LIFEInfoMap(BigInteger param0) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_LIFEINFOMAP,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(param0)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}, new TypeReference<Bool>() {}, new TypeReference<Bool>() {}, new TypeReference<Bool>() {}));
        return new RemoteFunctionCall<Tuple4<BigInteger, Boolean, Boolean, Boolean>>(function,
                new Callable<Tuple4<BigInteger, Boolean, Boolean, Boolean>>() {
                    @Override
                    public Tuple4<BigInteger, Boolean, Boolean, Boolean> call() throws Exception {
                        List<Type> results = executeCallMultipleValueReturn(function);
                        return new Tuple4<BigInteger, Boolean, Boolean, Boolean>(
                                (BigInteger) results.get(0).getValue(),
                                (Boolean) results.get(1).getValue(),
                                (Boolean) results.get(2).getValue(),
                                (Boolean) results.get(3).getValue());
                    }
                });
    }

    public RemoteFunctionCall<BigInteger> RemainingTicketsNumMap(BigInteger param0) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_REMAININGTICKETSNUMMAP,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(param0)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
        return executeRemoteCallSingleValueReturn(function, BigInteger.class);
    }

    public RemoteFunctionCall<Tuple10<BigInteger, Boolean, Boolean, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger>> TicketList(BigInteger param0) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_TICKETLIST,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(param0)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}, new TypeReference<Bool>() {}, new TypeReference<Bool>() {}, new TypeReference<Uint256>() {}, new TypeReference<Uint256>() {}, new TypeReference<Uint256>() {}, new TypeReference<Uint256>() {}, new TypeReference<Uint256>() {}, new TypeReference<Uint256>() {}, new TypeReference<Uint256>() {}));
        return new RemoteFunctionCall<Tuple10<BigInteger, Boolean, Boolean, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger>>(function,
                new Callable<Tuple10<BigInteger, Boolean, Boolean, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger>>() {
                    @Override
                    public Tuple10<BigInteger, Boolean, Boolean, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger> call() throws Exception {
                        List<Type> results = executeCallMultipleValueReturn(function);
                        return new Tuple10<BigInteger, Boolean, Boolean, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger>(
                                (BigInteger) results.get(0).getValue(),
                                (Boolean) results.get(1).getValue(),
                                (Boolean) results.get(2).getValue(),
                                (BigInteger) results.get(3).getValue(),
                                (BigInteger) results.get(4).getValue(),
                                (BigInteger) results.get(5).getValue(),
                                (BigInteger) results.get(6).getValue(),
                                (BigInteger) results.get(7).getValue(),
                                (BigInteger) results.get(8).getValue(),
                                (BigInteger) results.get(9).getValue());
                    }
                });
    }

    public RemoteFunctionCall<TransactionReceipt> acceptLIFE(BigInteger LIFEId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_ACCEPTLIFE,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(LIFEId)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> approve(String to, BigInteger tokenId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_APPROVE,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, to),
                new org.web3j.abi.datatypes.generated.Uint256(tokenId)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<BigInteger> balanceOf(String owner) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_BALANCEOF,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, owner)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
        return executeRemoteCallSingleValueReturn(function, BigInteger.class);
    }

    public RemoteFunctionCall<TransactionReceipt> cancelGranting(BigInteger LIFEId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_CANCELGRANTING,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(LIFEId)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> cancelReselling(BigInteger ticketId, BigInteger number) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_CANCELRESELLING,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(ticketId),
                new org.web3j.abi.datatypes.generated.Uint128(number)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> checkIn(BigInteger LIFEId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_CHECKIN,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(LIFEId)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> createTicket(BigInteger ticketId, BigInteger eventId, Boolean returnable, Boolean transferable, BigInteger validBefore, BigInteger returnEndTime, BigInteger transferEndTime, BigInteger saleEndTime, BigInteger priceX100, BigInteger sum, BigInteger maxNum) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_CREATETICKET,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(ticketId),
                new org.web3j.abi.datatypes.generated.Uint256(eventId),
                new org.web3j.abi.datatypes.Bool(returnable),
                new org.web3j.abi.datatypes.Bool(transferable),
                new org.web3j.abi.datatypes.generated.Uint256(validBefore),
                new org.web3j.abi.datatypes.generated.Uint256(returnEndTime),
                new org.web3j.abi.datatypes.generated.Uint256(transferEndTime),
                new org.web3j.abi.datatypes.generated.Uint256(saleEndTime),
                new org.web3j.abi.datatypes.generated.Uint256(priceX100),
                new org.web3j.abi.datatypes.generated.Uint256(sum),
                new org.web3j.abi.datatypes.generated.Uint256(maxNum)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<String> getApproved(BigInteger tokenId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETAPPROVED,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(tokenId)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}));
        return executeRemoteCallSingleValueReturn(function, String.class);
    }

    public RemoteFunctionCall<BigInteger> getBuyableTicketsNum(BigInteger ticketId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETBUYABLETICKETSNUM,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(ticketId)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
        return executeRemoteCallSingleValueReturn(function, BigInteger.class);
    }

    public RemoteFunctionCall<List> getGranteeList(BigInteger LIFEId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETGRANTEELIST,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(LIFEId)),
                Arrays.<TypeReference<?>>asList(new TypeReference<DynamicArray<Address>>() {}));
        return new RemoteFunctionCall<List>(function,
                new Callable<List>() {
                    @Override
                    @SuppressWarnings("unchecked")
                    public List call() throws Exception {
                        List<Type> result = (List<Type>) executeCallSingleValueReturn(function, List.class);
                        return convertToNative(result);
                    }
                });
    }

    public RemoteFunctionCall<Tuple5<List<BigInteger>, List<BigInteger>, List<Boolean>, List<Boolean>, List<Boolean>>> getLIFEsOfOwner() {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETLIFESOFOWNER,
                Arrays.<Type>asList(),
                Arrays.<TypeReference<?>>asList(new TypeReference<DynamicArray<Uint256>>() {}, new TypeReference<DynamicArray<Uint256>>() {}, new TypeReference<DynamicArray<Bool>>() {}, new TypeReference<DynamicArray<Bool>>() {}, new TypeReference<DynamicArray<Bool>>() {}));
        return new RemoteFunctionCall<Tuple5<List<BigInteger>, List<BigInteger>, List<Boolean>, List<Boolean>, List<Boolean>>>(function,
                new Callable<Tuple5<List<BigInteger>, List<BigInteger>, List<Boolean>, List<Boolean>, List<Boolean>>>() {
                    @Override
                    public Tuple5<List<BigInteger>, List<BigInteger>, List<Boolean>, List<Boolean>, List<Boolean>> call() throws Exception {
                        List<Type> results = executeCallMultipleValueReturn(function);
                        return new Tuple5<List<BigInteger>, List<BigInteger>, List<Boolean>, List<Boolean>, List<Boolean>>(
                                convertToNative((List<Uint256>) results.get(0).getValue()),
                                convertToNative((List<Uint256>) results.get(1).getValue()),
                                convertToNative((List<Bool>) results.get(2).getValue()),
                                convertToNative((List<Bool>) results.get(3).getValue()),
                                convertToNative((List<Bool>) results.get(4).getValue()));
                    }
                });
    }

    public RemoteFunctionCall<BigInteger> getSoldTicketsNum(BigInteger ticketId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_GETSOLDTICKETSNUM,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(ticketId)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
        return executeRemoteCallSingleValueReturn(function, BigInteger.class);
    }

    public RemoteFunctionCall<TransactionReceipt> grantLIFE(BigInteger LIFEId, String to) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_GRANTLIFE,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(LIFEId),
                new org.web3j.abi.datatypes.Address(160, to)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<Boolean> isApprovedForAll(String owner, String operator) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_ISAPPROVEDFORALL,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, owner),
                new org.web3j.abi.datatypes.Address(160, operator)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Bool>() {}));
        return executeRemoteCallSingleValueReturn(function, Boolean.class);
    }

    public RemoteFunctionCall<TransactionReceipt> mintLIFE(BigInteger ticketId, List<String> granteeList) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_MINTLIFE,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(ticketId),
                new org.web3j.abi.datatypes.DynamicArray<org.web3j.abi.datatypes.Address>(
                        org.web3j.abi.datatypes.Address.class,
                        org.web3j.abi.Utils.typeMap(granteeList, org.web3j.abi.datatypes.Address.class))),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<String> name() {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_NAME,
                Arrays.<Type>asList(),
                Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {}));
        return executeRemoteCallSingleValueReturn(function, String.class);
    }

    public RemoteFunctionCall<String> owner() {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_OWNER,
                Arrays.<Type>asList(),
                Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}));
        return executeRemoteCallSingleValueReturn(function, String.class);
    }

    public RemoteFunctionCall<String> ownerOf(BigInteger tokenId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_OWNEROF,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(tokenId)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Address>() {}));
        return executeRemoteCallSingleValueReturn(function, String.class);
    }

    public RemoteFunctionCall<TransactionReceipt> renounceOwnership() {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_RENOUNCEOWNERSHIP,
                Arrays.<Type>asList(),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> resellLIFE(BigInteger LIFEId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_RESELLLIFE,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(LIFEId)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> returnLIFE(BigInteger LIFEId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_RETURNLIFE,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(LIFEId)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> safeTransferFrom(String from, String to, BigInteger tokenId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_safeTransferFrom,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, from),
                new org.web3j.abi.datatypes.Address(160, to),
                new org.web3j.abi.datatypes.generated.Uint256(tokenId)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> safeTransferFrom(String from, String to, BigInteger tokenId, byte[] data) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_safeTransferFrom,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, from),
                new org.web3j.abi.datatypes.Address(160, to),
                new org.web3j.abi.datatypes.generated.Uint256(tokenId),
                new org.web3j.abi.datatypes.DynamicBytes(data)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> setApprovalForAll(String operator, Boolean approved) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_SETAPPROVALFORALL,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, operator),
                new org.web3j.abi.datatypes.Bool(approved)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> setEMAdd(String _EMAdd) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_SETEMADD,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, _EMAdd)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<Boolean> supportsInterface(byte[] interfaceId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_SUPPORTSINTERFACE,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Bytes4(interfaceId)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Bool>() {}));
        return executeRemoteCallSingleValueReturn(function, Boolean.class);
    }

    public RemoteFunctionCall<String> symbol() {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_SYMBOL,
                Arrays.<Type>asList(),
                Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {}));
        return executeRemoteCallSingleValueReturn(function, String.class);
    }

    public RemoteFunctionCall<BigInteger> tokenByIndex(BigInteger index) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_TOKENBYINDEX,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(index)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
        return executeRemoteCallSingleValueReturn(function, BigInteger.class);
    }

    public RemoteFunctionCall<BigInteger> tokenOfOwnerByIndex(String owner, BigInteger index) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_TOKENOFOWNERBYINDEX,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, owner),
                new org.web3j.abi.datatypes.generated.Uint256(index)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
        return executeRemoteCallSingleValueReturn(function, BigInteger.class);
    }

    public RemoteFunctionCall<String> tokenURI(BigInteger tokenId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_TOKENURI,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.generated.Uint256(tokenId)),
                Arrays.<TypeReference<?>>asList(new TypeReference<Utf8String>() {}));
        return executeRemoteCallSingleValueReturn(function, String.class);
    }

    public RemoteFunctionCall<BigInteger> totalSupply() {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(FUNC_TOTALSUPPLY,
                Arrays.<Type>asList(),
                Arrays.<TypeReference<?>>asList(new TypeReference<Uint256>() {}));
        return executeRemoteCallSingleValueReturn(function, BigInteger.class);
    }

    public RemoteFunctionCall<TransactionReceipt> transferFrom(String from, String to, BigInteger tokenId) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_TRANSFERFROM,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, from),
                new org.web3j.abi.datatypes.Address(160, to),
                new org.web3j.abi.datatypes.generated.Uint256(tokenId)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    public RemoteFunctionCall<TransactionReceipt> transferOwnership(String newOwner) {
        final org.web3j.abi.datatypes.Function function = new org.web3j.abi.datatypes.Function(
                FUNC_TRANSFEROWNERSHIP,
                Arrays.<Type>asList(new org.web3j.abi.datatypes.Address(160, newOwner)),
                Collections.<TypeReference<?>>emptyList());
        return executeRemoteCallTransaction(function);
    }

    @Deprecated
    public static TicketingManagement load(String contractAddress, Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) {
        return new TicketingManagement(contractAddress, web3j, credentials, gasPrice, gasLimit);
    }

    @Deprecated
    public static TicketingManagement load(String contractAddress, Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) {
        return new TicketingManagement(contractAddress, web3j, transactionManager, gasPrice, gasLimit);
    }

    public static TicketingManagement load(String contractAddress, Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) {
        return new TicketingManagement(contractAddress, web3j, credentials, contractGasProvider);
    }

    public static TicketingManagement load(String contractAddress, Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) {
        return new TicketingManagement(contractAddress, web3j, transactionManager, contractGasProvider);
    }

    public static RemoteCall<TicketingManagement> deploy(Web3j web3j, Credentials credentials, ContractGasProvider contractGasProvider) {
        return deployRemoteCall(TicketingManagement.class, web3j, credentials, contractGasProvider, BINARY, "");
    }

    public static RemoteCall<TicketingManagement> deploy(Web3j web3j, TransactionManager transactionManager, ContractGasProvider contractGasProvider) {
        return deployRemoteCall(TicketingManagement.class, web3j, transactionManager, contractGasProvider, BINARY, "");
    }

    @Deprecated
    public static RemoteCall<TicketingManagement> deploy(Web3j web3j, Credentials credentials, BigInteger gasPrice, BigInteger gasLimit) {
        return deployRemoteCall(TicketingManagement.class, web3j, credentials, gasPrice, gasLimit, BINARY, "");
    }

    @Deprecated
    public static RemoteCall<TicketingManagement> deploy(Web3j web3j, TransactionManager transactionManager, BigInteger gasPrice, BigInteger gasLimit) {
        return deployRemoteCall(TicketingManagement.class, web3j, transactionManager, gasPrice, gasLimit, BINARY, "");
    }

    public static class ApprovalEventResponse extends BaseEventResponse {
        public String owner;

        public String approved;

        public BigInteger tokenId;
    }

    public static class ApprovalForAllEventResponse extends BaseEventResponse {
        public String owner;

        public String operator;

        public Boolean approved;
    }

    public static class GetQueueNumEventResponse extends BaseEventResponse {
        public BigInteger num;
    }

    public static class OwnershipTransferredEventResponse extends BaseEventResponse {
        public String previousOwner;

        public String newOwner;
    }

    public static class ResellSuccessEventResponse extends BaseEventResponse {
        public String reseller;

        public BigInteger LIFEId;
    }

    public static class TransferEventResponse extends BaseEventResponse {
        public String from;

        public String to;

        public BigInteger tokenId;
    }
}
